﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            class1();
        }
        //用户输入正方形边长，用* 打印出实心正方形。

        //如：用户输入5，则输出如下图形。
        //*****
        //*****
        //*****
        //*****
        //*****
        static void class1()
        {

            Console.WriteLine("请输入数字");
            int a = int.Parse(Console.ReadLine());
            int[,] arr = new int[a, a];
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int y = 0; y < arr.GetLength(1); y++)
                {
                    Console.Write("* ");

                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        //打印九九乘法表
        static void class2()
        {
            string[,] arr = new string[9, 9];
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int y = 0; y <= i; y++)
                {
                    arr[i, y] = (i + 1) + "*" + (y + 1) + "=" + (i + 1) * (y + 1) + "\t";
                }

            }
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int y = 0; y <= i; y++)
                {
                    Console.Write(arr[i, y]);
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        //用户输入正方形边长，用* 打印出空心正方形。

        //如：用户输入5，则输出如下图形。
        //*****
        //*    *
        //*    *
        //*    *
        //*****
        static void class3()
        {
            Console.WriteLine("请输入数字");
            int a = int.Parse(Console.ReadLine());
            int[,] arr = new int[a, a];
            for (int i = 0; i < arr.GetLength(0); i++)
            {
                for (int y = 0; y < arr.GetLength(1); y++)
                {
                    if (i == 0 || y == 0 || i == arr.GetLength(0) - 1 || y == arr.GetLength(1) - 1)
                    {
                        Console.Write("*");
                    }
                    else
                    {
                        Console.Write(" ");
                    }
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        //打印菱形
        //  *
        // ***
        //*****
        // ***
        //  *

        //边长是3
        //行列数就是5
        static void class4()
        {
            Console.WriteLine("输入一个大于2的正整数");//至少3行才能出一个菱形，输入一个偶数菱形就是这个偶数减1行
            int a = int.Parse(Console.ReadLine());
            int[,] arr = new int[a, a];
            for (int i = 1; i <= (arr.GetLength(0) + 1) / 2; i++) //打印菱形的上面部分
            {
                for (int j = (arr.GetLength(1) - 1) / 2; j >= i; j--)
                {    //打印空格
                    Console.Write(" ");
                }
                for (int k = 1; k <= i * 2 - 1; k++)
                {   //打印“*”号，第i行有i*2-1个“*”号
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            for (int i = (arr.GetLength(0) - 1) / 2; i >= 1; i--)//打印菱形下面的部分 与上面部分同理
            {
                for (int j = i - 1; j < (arr.GetLength(1) - 1) / 2; j++)
                {
                    Console.Write(" ");
                }
                for (int k = 1; k <= i * 2 - 1; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
        //在 Main 方法中创建一个字符串类型的数组，并存入 5 个值，然后将数组中下标是偶数的元素输出。
        static void class5()
        {
            string[] arr = { "aa1", "bb2", "cc3", "dd4", "ee5" };
            foreach (var item in arr)
            {
                Console.Write(item + "");
            }
            for (int i = 0; i < arr.Length; i++)
            {
                if (i % 2 == 0)
                {
                    Console.WriteLine("下标是偶数的元素是{0}", arr[i]);
                }
            }
            Console.ReadLine();
        }
        //如果一个数组保存元素是有序的（从大到小），向这个数组中插入一个数，使得插入后的数组元素仍然保持有序。
        static void class6()
        {
            int[] arr = { 1, 22, 34, 45, 56 };
            Console.Write("原数组为：");
            foreach (var item in arr)
            {
                Console.Write(item + " ");
            }
            Console.WriteLine("请输入一个数：");
            int a = int.Parse(Console.ReadLine());
            int[] brr = new int[arr.Length + 1];
            int b = 0;
            for (int i = 0; i < brr.Length; i++)
            {
                if (i < b)
                {
                    brr[i] = arr[i];
                }
                if (i == b)
                {
                    brr[i] = a;
                }
                if (i > b)
                {
                    brr[i] = arr[(i - 1)];
                }
            }
            Array.Sort(brr);
            Array.Reverse(brr);
            Console.Write("更改后的数组：");
            foreach (int num in brr)
            {
                Console.Write(num + " ");
            }
            Console.ReadKey();
        }
        //打印杨辉三角形（要求打印10行），如下所示：（使用二维数组）
        //1
        //1    1
        //1    2    1
        //1    3    3   1
        //1    4    6   4    1
        //1    5    10  10   5   1
        static void class7()
        {
            Console.WriteLine("请输入长度：");
            int length = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine();
            int[,] array = new int[length, length];
            for (int i = 0; i < length; i++)
            { // 循环打印杨辉三角,length行
                for (int k = 0; k < length - i; k++) //打印空格
                {
                    Console.Write(" ");
                }
                for (int j = 0; j <= i; j++) //注意:j<=i, 因为第1行有1列，第2行有2列，第3行有3列。。。
                {
                    if (j == 0 || i == j)  //第一列和最后一列
                    {
                        array[i, j] = 1; //值为1
                    }
                    else
                    {
                        array[i, j] = array[i - 1, j - 1] + array[i - 1, j]; //中间列的值 = 上一行和它所在列-1的值 + 上一行和它所在列的值
                    }
                    Console.Write(array[i, j].ToString() + " "); //打印值
                }
                Console.WriteLine();//每行打印完所有值后换行
            }
            Console.ReadKey();
        }
    }
}

